efi_loader: ACPI device node to text
authorHeinrich Schuchardt <[email protected]>
Sat, 11 May 2019 21:11:48 +0000 (23:11 +0200)
committerHeinrich Schuchardt <[email protected]>
Sun, 12 May 2019 18:54:22 +0000 (20:54 +0200)
The device path to text protocol renders ACPI device nodes incorrectly.

Use capital hexadecimal numbers as shown in the UEFI spec examples.

Always output the optional UID. This matches what UEFI SCT expects and
saves us an `if`.

Signed-off-by: Heinrich Schuchardt <[email protected]>
lib/efi_loader/efi_device_path_to_text.c

index e219f84b28d229924d975a3418e0e904df8b06e8..f3a95790766472323da24337d6c722d87c0089a9 100644 (file)
@@ -78,9 +78,9 @@ static char *dp_acpi(char *s, struct efi_device_path *dp)
        case DEVICE_PATH_SUB_TYPE_ACPI_DEVICE: {
                struct efi_device_path_acpi_path *adp =
                        (struct efi_device_path_acpi_path *)dp;
-               s += sprintf(s, "Acpi(PNP%04x", EISA_PNP_NUM(adp->hid));
-               if (adp->uid)
-                       s += sprintf(s, ",%d", adp->uid);
+
+               s += sprintf(s, "Acpi(PNP%04X", EISA_PNP_NUM(adp->hid));
+               s += sprintf(s, ",%d", adp->uid);
                s += sprintf(s, ")");
                break;
        }